package top.chukongxiang.project.base.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import top.chukongxiang.project.base.model.entity.sys.Menu;
import top.chukongxiang.project.base.model.entity.user.User;
import top.chukongxiang.project.base.model.vo.KeywordsPageVo;
import top.chukongxiang.project.base.model.vo.user.UserVo;

import java.util.List;

/**
 * 用户服务
 * @author 楚孔响
 * @version 1.0
 * @date 2021/12/11 0:53
 */
public interface UserService extends IService<User> {

    /**
     * 根据用户id获取用户信息
     * @param username 用户名
     * @return 用户信息
     */
    User getUserInfoByUsername(String username);

    /**
     * 判断用户是否存在
     * @param id 用户id
     * @return 是否存在
     */
    boolean existsById(String id);

    /**
     * 根据用户id获取用户菜单
     * @param userId
     * @return
     */
    List<Menu> listMenuByUserId(String userId);

    /**
     * 根据关键字分页查询
     * @param keywordsPageVo
     * @return
     */
    IPage<UserVo> pageUser(KeywordsPageVo<User> keywordsPageVo);

    /**
     * 根据角色id分页查询用户
     * @param keywordsPageVo
     * @return
     */
    IPage<? extends User> pageUserByRoleId(KeywordsPageVo<User> keywordsPageVo);

}
